Dictionary={'W.intro': {'body': '<a href="W.intro" title=" Whiff Documentation Index "> Whiff Documentation Index </a>',
             'children': ['W0500.quickstart',
                          'W1000.concepts',
                          'W1100.tutorial',
                          'W1200.Ref',
                          'W1300.testAndDemo',
                          'W1400.otherResources',
                          'W1500.whyIsWhiffCool'],
             'filename': 'W.intro.whiff',
             'id': 'W.intro',
             'next': 'W0500.quickstart',
             'previous': None,
             'summary': '\n\tWHIFF \n[<u>W</u>SGI <u>H</u>TTP <u>I</u>ntegrated <u>F</u>ilesystem <u>F</u>rames]\nis an infrastructure for easily building complex \nPython/WSGI Web applications by combining smaller and simpler \nWSGI components organized within file system trees.\n\t',
             'title': ' Whiff Documentation Index '},
 'W0500.quickstart': {'body': '<a href="W0500.quickstart" title=" Quick Start "> Quick Start </a>',
                      'children': [],
                      'filename': 'W0500.quickstart.whiff',
                      'id': 'W0500.quickstart',
                      'next': 'W1000.concepts',
                      'parent': 'W.intro',
                      'previous': 'W.intro',
                      'summary': '\nHow to install and start working with WHIFF (for the impatient).\n',
                      'title': ' Quick Start '},
 'W1000.concepts': {'body': '<a href="W1000.concepts" title=" Concepts "> Concepts </a>',
                    'children': ['W1000_1000.resources',
                                 'W1000_1100.configuration',
                                 'W1000_1200.Execution',
                                 'W1000_1300.glossary'],
                    'filename': 'W1000.concepts.whiff',
                    'id': 'W1000.concepts',
                    'next': 'W1000_1000.resources',
                    'parent': 'W.intro',
                    'previous': 'W0500.quickstart',
                    'summary': ' \nWhiff organizes web components by mapping URLs to filenames\nin a similar manner to the way static web pages are organized\nby mapping URLs to filenames.\nWhiff also helps organize the life cycle of an application\r\ninto three stages: resource allocation, parameterization, and request execution. ',
                    'title': ' Concepts '},
 'W1000_1000.resources': {'body': '<a href="W1000_1000.resources" title=" \n\nResource Management \n\n   "> \n\nResource Management \n\n   </a>',
                          'children': [],
                          'filename': 'W1000_1000.resources.whiff',
                          'id': 'W1000_1000.resources',
                          'next': 'W1000_1100.configuration',
                          'parent': 'W1000.concepts',
                          'previous': 'W1000.concepts',
                          'summary': " \n\nA resource is an object which a web\napplication can use to get information from \r\nthe server environment or store \r\ninformation to the server environment.  WSGI\r\napplications can use WHIFF API's to find and manipulate\r\nresources. \n\n   ",
                          'title': ' \n\nResource Management \n\n   '},
 'W1000_1100.configuration': {'body': '<a href="W1000_1100.configuration" title=" \n\nApplication Configuration \n\n   "> \n\nApplication Configuration \n\n   </a>',
                              'children': [],
                              'filename': 'W1000_1100.configuration.whiff',
                              'id': 'W1000_1100.configuration',
                              'next': 'W1000_1200.Execution',
                              'parent': 'W1000.concepts',
                              'previous': 'W1000_1000.resources',
                              'summary': ' \n\nA whiff application, middleware or application fragment is identified by a Uniform Resource Locator (URL) which generally also trivially identifies the Python code or the configuration template which describes the application component. \n\n   ',
                              'title': ' \n\nApplication Configuration \n\n   '},
 'W1000_1200.Execution': {'body': '<a href="W1000_1200.Execution" title=" \n\nExecution Parameters \n\n   "> \n\nExecution Parameters \n\n   </a>',
                          'children': [],
                          'filename': 'W1000_1200.Execution.whiff',
                          'id': 'W1000_1200.Execution',
                          'next': 'W1000_1300.glossary',
                          'parent': 'W1000.concepts',
                          'previous': 'W1000_1100.configuration',
                          'summary': ' \n\nMost things which vary between different accesses to\r\nthe same application are execution parameters.\r\nWHIFF Execution parameters are embedded in the WSGI environment dictionary.\nWHIFF supports primatives and naming conventions for accessing the WSGI environment.\n\n   ',
                          'title': ' \n\nExecution Parameters \n\n   '},
 'W1000_1300.glossary': {'body': '<a href="W1000_1300.glossary" title=" \n\nGlossary of terms \n\n   "> \n\nGlossary of terms \n\n   </a>',
                         'children': [],
                         'filename': 'W1000_1300.glossary.whiff',
                         'id': 'W1000_1300.glossary',
                         'next': 'W1100.tutorial',
                         'parent': 'W1000.concepts',
                         'previous': 'W1000_1200.Execution',
                         'summary': ' \n\nWHIFF is related to a wide variety of concepts.  The glossary\r\nincludes discussions and links to discussions about some of\r\nthose concepts. \n\n   ',
                         'title': ' \n\nGlossary of terms \n\n   '},
 'W1100.tutorial': {'body': '<a href="W1100.tutorial" title=" Tutorial "> Tutorial </a>',
                    'children': ['W1100_0500.TestDrive',
                                 'W1100_1000.resumes',
                                 'W1100_1050.Grading',
                                 'W1100_1075.MakoGrading',
                                 'W1100_1100.wizard',
                                 'W1100_1200.wwiki',
                                 'W1100_1300.menus',
                                 'W1100_1400.calc',
                                 'W1100_1450.jQueryUI',
                                 'W1100_1500.who',
                                 'W1100_1600.openFlashCharts',
                                 'W1100_1700.international',
                                 'W1100_2050.UrlMapping',
                                 'W1100_2200.TreeView',
                                 'W1100_2300.GAEDeploy',
                                 'W1100_2400.AuthorizedResources'],
                    'filename': 'W1100.tutorial.whiff',
                    'id': 'W1100.tutorial',
                    'next': 'W1100_0500.TestDrive',
                    'parent': 'W.intro',
                    'previous': 'W1000_1300.glossary',
                    'summary': ' \nWalking through some examples will help you learn\r\nthe organization and capabilities of the whiff\r\npackage. ',
                    'title': ' Tutorial '},
 'W1100_0500.TestDrive': {'body': '<a href="W1100_0500.TestDrive" title=" Test drive with exercises "> Test drive with exercises </a>',
                          'children': [],
                          'filename': 'W1100_0500.TestDrive.whiff',
                          'id': 'W1100_0500.TestDrive',
                          'next': 'W1100_1000.resumes',
                          'parent': 'W1100.tutorial',
                          'previous': 'W1100.tutorial',
                          'summary': '\nThis tutorial describes how to run the\nWHIFF test drive in a "safe sand box" which does not require\nyou to install WHIFF.\nThe test drive also includes some\nsimple challenge exercises to help you\nlearn WHIFF and test your understanding\nof the WHIFF environment.\n',
                          'title': ' Test drive with exercises '},
 'W1100_1000.resumes': {'body': '<a href="W1100_1000.resumes" title=" \n\nMaking resumes from fragments \n\n   "> \n\nMaking resumes from fragments \n\n   </a>',
                        'children': [],
                        'filename': 'W1100_1000.resumes.whiff',
                        'id': 'W1100_1000.resumes',
                        'next': 'W1100_1050.Grading',
                        'parent': 'W1100.tutorial',
                        'previous': 'W1100_0500.TestDrive',
                        'summary': ' \n\nThis tutorial shows how to build up larger pages from small\r\nfragments of pages using the WHIFF URL naming conventions\nand configuration templates.\n\n   ',
                        'title': ' \n\nMaking resumes from fragments \n\n   '},
 'W1100_1050.Grading': {'body': '<a href="W1100_1050.Grading" title=" \n\nA grading form\n\n   "> \n\nA grading form\n\n   </a>',
                        'children': [],
                        'filename': 'W1100_1050.Grading.whiff',
                        'id': 'W1100_1050.Grading',
                        'next': 'W1100_1075.MakoGrading',
                        'parent': 'W1100.tutorial',
                        'previous': 'W1100_1000.resumes',
                        'summary': ' \n\nThis tutorial illustrates how to\nmanipulate web page forms using whiff\nconfiguration files and Python modules. \nIt also shows how to separate "logic"\nfrom "presentation" in web applications.\n\n   ',
                        'title': ' \n\nA grading form\n\n   '},
 'W1100_1075.MakoGrading': {'body': '<a href="W1100_1075.MakoGrading" title=" \n\nA Mako template for grading\n\n   "> \n\nA Mako template for grading\n\n   </a>',
                            'children': [],
                            'filename': 'W1100_1075.MakoGrading.whiff',
                            'id': 'W1100_1075.MakoGrading',
                            'next': 'W1100_1100.wizard',
                            'parent': 'W1100.tutorial',
                            'previous': 'W1100_1050.Grading',
                            'summary': ' \n\nThis tutorial illustrates how to\nimplement a web form in a single page\nby using a Mako template containing\nembedded Python calculations.\n\n   ',
                            'title': ' \n\nA Mako template for grading\n\n   '},
 'W1100_1100.wizard': {'body': '<a href="W1100_1100.wizard" title=" \n\nA resume wizard \n\n   "> \n\nA resume wizard \n\n   </a>',
                       'children': [],
                       'filename': 'W1100_1100.wizard.whiff',
                       'id': 'W1100_1100.wizard',
                       'next': 'W1100_1200.wwiki',
                       'parent': 'W1100.tutorial',
                       'previous': 'W1100_1075.MakoGrading',
                       'summary': ' \n\nThis tutorial builds on the previous "resume fragments" tutorial\nto define a suite of applications which help users construct resumes.\nThe applications use HTTP session and user profile resources\nto keep track of logged in users and record their resume information.\n\n   ',
                       'title': ' \n\nA resume wizard \n\n   '},
 'W1100_1200.wwiki': {'body': '<a href="W1100_1200.wwiki" title=" \n\nA simple wiki using MVC and MySQL \n\n   "> \n\nA simple wiki using MVC and MySQL \n\n   </a>',
                      'children': [],
                      'filename': 'W1100_1200.wwiki.whiff',
                      'id': 'W1100_1200.wwiki',
                      'next': 'W1100_1300.menus',
                      'parent': 'W1100.tutorial',
                      'previous': 'W1100_1100.wizard',
                      'summary': ' \n\nThis example implements a &quot;wiki&quot; interface.\nThe implementation organizes the application\r\nusing the &quot;model/view/controller&quot; (MVC) pattern within\r\nWHIFF and also illustrates how to add an SQL database as\r\na resource to a WHIFF application among other things.\n\n   ',
                      'title': ' \n\nA simple wiki using MVC and MySQL \n\n   '},
 'W1100_1300.menus': {'body': '<a href="W1100_1300.menus" title=" \n\nDrop down menus for navigation\n\n   "> \n\nDrop down menus for navigation\n\n   </a>',
                      'children': [],
                      'filename': 'W1100_1300.menus.whiff',
                      'id': 'W1100_1300.menus',
                      'next': 'W1100_1400.calc',
                      'parent': 'W1100.tutorial',
                      'previous': 'W1100_1200.wwiki',
                      'summary': ' \n\nThis tutorial demonstrates how to use WHIFF built in\r\nmiddleware to add a drop down menu to a collection of web\r\npages.\n\n   ',
                      'title': ' \n\nDrop down menus for navigation\n\n   '},
 'W1100_1400.calc': {'body': '<a href="W1100_1400.calc" title=" \n\nAJAX based calculator \n\n   "> \n\nAJAX based calculator \n\n   </a>',
                     'children': [],
                     'filename': 'W1100_1400.calc.whiff',
                     'id': 'W1100_1400.calc',
                     'next': 'W1100_1450.jQueryUI',
                     'parent': 'W1100.tutorial',
                     'previous': 'W1100_1300.menus',
                     'summary': ' \n\nThis discussion explains the implementation of\r\na calculator widget using AJAX techniques with WHIFF. \n\n   ',
                     'title': ' \n\nAJAX based calculator \n\n   '},
 'W1100_1450.jQueryUI': {'body': '<a href="W1100_1450.jQueryUI" title=" \n\tjqueryUI interactive widgets\n\t"> \n\tjqueryUI interactive widgets\n\t</a>',
                         'children': ['W1100_1450_1000.jQueryAutocomplete'],
                         'filename': 'W1100_1450.jQueryUI.whiff',
                         'id': 'W1100_1450.jQueryUI',
                         'next': 'W1100_1450_1000.jQueryAutocomplete',
                         'parent': 'W1100.tutorial',
                         'previous': 'W1100_1400.calc',
                         'summary': '\nThis tutorial describes how to use the WHIFF\nsupport for jqueryUI interactive web page widgets\nsuch as the\n<code>datepicker</code>,\n<code>autocompletion</code>,\n<code>sortable</code>,\n<code>draggable/droppable</code>,\n<code>progressbar</code>,\nand <code>accordion</code>.\nThe tutorial describes the general methodology for configuring\n<code>jquery</code> widgets and also walks through a number of\nsimple working example page configurations.\n',
                         'title': ' \n\tjqueryUI interactive widgets\n\t'},
 'W1100_1450_1000.jQueryAutocomplete': {'body': '<a href="W1100_1450_1000.jQueryAutocomplete" title=" Ajax autocompletion using jQuery "> Ajax autocompletion using jQuery </a>',
                                        'children': [],
                                        'filename': 'W1100_1450_1000.jQueryAutocomplete.whiff',
                                        'id': 'W1100_1450_1000.jQueryAutocomplete',
                                        'next': 'W1100_1500.who',
                                        'parent': 'W1100_1450.jQueryUI',
                                        'previous': 'W1100_1450.jQueryUI',
                                        'summary': '\nThis tutorial describes how to \nbuild and deploy a simple application which\nuses an Ajax server callback to provide auto completion\nfor an input element.\n',
                                        'title': ' Ajax autocompletion using jQuery '},
 'W1100_1500.who': {'body': '<a href="W1100_1500.who" title=" \n\nAuthenticating users using repoze.who \n\n   "> \n\nAuthenticating users using repoze.who \n\n   </a>',
                    'children': [],
                    'filename': 'W1100_1500.who.whiff',
                    'id': 'W1100_1500.who',
                    'next': 'W1100_1600.openFlashCharts',
                    'parent': 'W1100.tutorial',
                    'previous': 'W1100_1450_1000.jQueryAutocomplete',
                    'summary': ' \n\nThis tutorial explains how to use the\r\nWHIFF interface to repoze.who to authenticate\r\nusers.  By authenticating users and checking the\r\nauthentication a WHIFF application may determine\r\nwho can and who cannot access pages or whole\r\nURL subtrees. \n\n   ',
                    'title': ' \n\nAuthenticating users using repoze.who \n\n   '},
 'W1100_1600.openFlashCharts': {'body': '<a href="W1100_1600.openFlashCharts" title=" \n\nCharting data using Open Flash Charts \n\n   "> \n\nCharting data using Open Flash Charts \n\n   </a>',
                                'children': [],
                                'filename': 'W1100_1600.openFlashCharts.whiff',
                                'id': 'W1100_1600.openFlashCharts',
                                'next': 'W1100_1700.international',
                                'parent': 'W1100.tutorial',
                                'previous': 'W1100_1500.who',
                                'summary': ' \n\nThe <code>whiff_middleware/OpenFlashChart</code>\r\nmiddleware formats an\r\n<a href="http://teethgrinder.co.uk/open-flash-chart-2/">Open Flash Chart (version 2)\r\n[http://teethgrinder.co.uk/open-flash-chart-2/]</a>.\r\nAll required components for the chart widget come pre-packaged with the WHIFF distribution.\r\n \n\n   ',
                                'title': ' \n\nCharting data using Open Flash Charts \n\n   '},
 'W1100_1700.international': {'body': '<a href="W1100_1700.international" title=" \n\nInternationalization\n\n   "> \n\nInternationalization\n\n   </a>',
                              'children': [],
                              'filename': 'W1100_1700.international.whiff',
                              'id': 'W1100_1700.international',
                              'next': 'W1100_2050.UrlMapping',
                              'parent': 'W1100.tutorial',
                              'previous': 'W1100_1600.openFlashCharts',
                              'summary': ' \n\nThis tutorial describes a strategy for providing an application\nwith translations in many languages.\nThe internationalization strategy uses WHIFF naming conventions\nto "overlay" different language substitutions on language independent\nskeleton views.\n\n   ',
                              'title': ' \n\nInternationalization\n\n   '},
 'W1100_2050.UrlMapping': {'body': '<a href="W1100_2050.UrlMapping" title=" \n\nURL rewriting tutorial\n\n   "> \n\nURL rewriting tutorial\n\n   </a>',
                           'children': [],
                           'filename': 'W1100_2050.UrlMapping.whiff',
                           'id': 'W1100_2050.UrlMapping',
                           'next': 'W1100_2200.TreeView',
                           'parent': 'W1100.tutorial',
                           'previous': 'W1100_1700.international',
                           'summary': ' \n\nThis advanced tutorial illustrates how to\nrewrite a "user-facing external"\nURL into an "internal" URL.  This kind of mapping\ncan be useful to allow the external URLs to\nbe "prettier" and  more easily understood by people\nthan internal URLs which are more easily implemented\nusing WHIFF methodologies.  This discussion assumes\nthe reader has a fairly deep understanding of HTTP\ntechnology.\n\n   ',
                           'title': ' \n\nURL rewriting tutorial\n\n   '},
 'W1100_2200.TreeView': {'body': '<a href="W1100_2200.TreeView" title=" \n\nUsing tree view widgets\n\n   "> \n\nUsing tree view widgets\n\n   </a>',
                         'children': [],
                         'filename': 'W1100_2200.TreeView.whiff',
                         'id': 'W1100_2200.TreeView',
                         'next': 'W1100_2300.GAEDeploy',
                         'parent': 'W1100.tutorial',
                         'previous': 'W1100_2050.UrlMapping',
                         'summary': ' \n\nThis tutorial illustrates how to\nadd a "tree view" widget to a web\npage.\n\n   ',
                         'title': ' \n\nUsing tree view widgets\n\n   '},
 'W1100_2300.GAEDeploy': {'body': '<a href="W1100_2300.GAEDeploy" title=" \n\nGoogle App Engine Deploys\n\n   "> \n\nGoogle App Engine Deploys\n\n   </a>',
                          'children': [],
                          'filename': 'W1100_2300.GAEDeploy.whiff',
                          'id': 'W1100_2300.GAEDeploy',
                          'next': 'W1100_2400.AuthorizedResources',
                          'parent': 'W1100.tutorial',
                          'previous': 'W1100_2200.TreeView',
                          'summary': ' \n\nThis tutorial illustrates how to\nDeploy a WHIFF application to the Google\nApp Engine Platform by explaining the\nsteps needed to deploy the Wiki tutorial application\nto a GAE web site.  To deploy the application\nwe need to develop a WHIFF resource which uses\nthe GAE data store, but the rest of the application\nis unchanged.\n\n   ',
                          'title': ' \n\nGoogle App Engine Deploys\n\n   '},
 'W1100_2400.AuthorizedResources': {'body': '<a href="W1100_2400.AuthorizedResources" title=" \n\nGuarded Resources\n\n   "> \n\nGuarded Resources\n\n   </a>',
                                    'children': [],
                                    'filename': 'W1100_2400.AuthorizedResources.whiff',
                                    'id': 'W1100_2400.AuthorizedResources',
                                    'next': 'W1200.Ref',
                                    'parent': 'W1100.tutorial',
                                    'previous': 'W1100_2300.GAEDeploy',
                                    'summary': ' \n\nThis tutorial \nillustrates how to implement data access control using\nthe <b>guarded resource protocol</b> built in to WHIFF.\nThe guarded resource protocol\nallows appropriate access to resources\nand prevents inappropriate access to resources.\nThis discussion uses the\ncontrol of access to student grades in a university courses\nas an example to illustrate access control requirements\nand implementations.\n\n   ',
                                    'title': ' \n\nGuarded Resources\n\n   '},
 'W1200.Ref': {'body': '<a href="W1200.Ref" title=" Reference "> Reference </a>',
               'children': ['W1200_1000.DirectoryConfig',
                            'W1200_1100.environment',
                            'W1200_1200.config_template',
                            'W1200_1300.applicationAPI',
                            'W1200_1400.stdMiddleware'],
               'filename': 'W1200.Ref.whiff',
               'id': 'W1200.Ref',
               'next': 'W1200_1000.DirectoryConfig',
               'parent': 'W.intro',
               'previous': 'W1100_2400.AuthorizedResources',
               'summary': ' The reference section systematically describes the whiff components. ',
               'title': ' Reference '},
 'W1200_1000.DirectoryConfig': {'body': '<a href="W1200_1000.DirectoryConfig" title=" \n\nDirectory configuration \n\n   "> \n\nDirectory configuration \n\n   </a>',
                                'children': ['W1200_1000_1000.ImplementingResources'],
                                'filename': 'W1200_1000.DirectoryConfig.whiff',
                                'id': 'W1200_1000.DirectoryConfig',
                                'next': 'W1200_1000_1000.ImplementingResources',
                                'parent': 'W1200.Ref',
                                'previous': 'W1200.Ref',
                                'summary': ' \n\nA python API permits configuration of WHIFF directories. \n\n   ',
                                'title': ' \n\nDirectory configuration \n\n   '},
 'W1200_1000_1000.ImplementingResources': {'body': '<a href="W1200_1000_1000.ImplementingResources" title=" \n\nImplementing a resource finder \n\n   "> \n\nImplementing a resource finder \n\n   </a>',
                                           'children': [],
                                           'filename': 'W1200_1000_1000.ImplementingResources.whiff',
                                           'id': 'W1200_1000_1000.ImplementingResources',
                                           'next': 'W1200_1100.environment',
                                           'parent': 'W1200_1000.DirectoryConfig',
                                           'previous': 'W1200_1000.DirectoryConfig',
                                           'summary': ' \n\nThis section describes how to implement a special purpose resource for an application. \n\n   ',
                                           'title': ' \n\nImplementing a resource finder \n\n   '},
 'W1200_1100.environment': {'body': '<a href="W1200_1100.environment" title=" \n\nExecution Environment \n\n   "> \n\nExecution Environment \n\n   </a>',
                            'children': [],
                            'filename': 'W1200_1100.environment.whiff',
                            'id': 'W1200_1100.environment',
                            'next': 'W1200_1200.config_template',
                            'parent': 'W1200.Ref',
                            'previous': 'W1200_1000_1000.ImplementingResources',
                            'summary': ' \n\nWhen a WHIFF application directory responds to an HTTP request\r\nthe WHIFF infrastructure obeys directives in the application\r\nenvironment and also puts information in the application\r\nenvironment. \n\n   ',
                            'title': ' \n\nExecution Environment \n\n   '},
 'W1200_1200.config_template': {'body': '<a href="W1200_1200.config_template" title=" \n\nWhiff configuration templates \n\n   "> \n\nWhiff configuration templates \n\n   </a>',
                                'children': [],
                                'filename': 'W1200_1200.config_template.whiff',
                                'id': 'W1200_1200.config_template',
                                'next': 'W1200_1300.applicationAPI',
                                'parent': 'W1200.Ref',
                                'previous': 'W1200_1100.environment',
                                'summary': ' \n\nWhiff provides a configuration template file format\r\nwhich may be used to create applications by combining\r\nother applications with middleware components or application\r\nfragments.\n\n   ',
                                'title': ' \n\nWhiff configuration templates \n\n   '},
 'W1200_1300.applicationAPI': {'body': '<a href="W1200_1300.applicationAPI" title=" \n\nApplication/Middleware API \n\n   "> \n\nApplication/Middleware API \n\n   </a>',
                               'children': [],
                               'filename': 'W1200_1300.applicationAPI.whiff',
                               'id': 'W1200_1300.applicationAPI',
                               'next': 'W1200_1400.stdMiddleware',
                               'parent': 'W1200.Ref',
                               'previous': 'W1200_1200.config_template',
                               'summary': ' \n\nWhiff provides a application programmers interface (API) for building applications using Python modules. \n\n   ',
                               'title': ' \n\nApplication/Middleware API \n\n   '},
 'W1200_1400.stdMiddleware': {'body': '<a href="W1200_1400.stdMiddleware" title=" \n\nStandard whiff_middleware \n\n   "> \n\nStandard whiff_middleware \n\n   </a>',
                              'children': ['W1200_1400_1000.naming',
                                           'W1200_1400_2000.formatting',
                                           'W1200_1400_3000.tools',
                                           'W1200_1400_4000.authorization',
                                           'W1200_1400_5000.logic',
                                           'W1200_1400_6000.library',
                                           'W1200_1400_7000.ajax',
                                           'W1200_1400_8000.miscellaneous'],
                              'filename': 'W1200_1400.stdMiddleware.whiff',
                              'id': 'W1200_1400.stdMiddleware',
                              'next': 'W1200_1400_1000.naming',
                              'parent': 'W1200.Ref',
                              'previous': 'W1200_1300.applicationAPI',
                              'summary': ' \n\nThe WHIFF infrastructure provides a collection of\nstandard middleware components useful for building\napplications and also for testing and debugging\napplications. \n\n   ',
                              'title': ' \n\nStandard whiff_middleware \n\n   '},
 'W1200_1400_1000.naming': {'body': '<a href="W1200_1400_1000.naming" title=" \n\nMiddleware: Naming management helpers \n\n   "> \n\nMiddleware: Naming management helpers \n\n   </a>',
                            'children': [],
                            'filename': 'W1200_1400_1000.naming.whiff',
                            'id': 'W1200_1400_1000.naming',
                            'next': 'W1200_1400_2000.formatting',
                            'parent': 'W1200_1400.stdMiddleware',
                            'previous': 'W1200_1400.stdMiddleware',
                            'summary': ' \n\nStandard middleware category: Naming management helpers.\n\n   ',
                            'title': ' \n\nMiddleware: Naming management helpers \n\n   '},
 'W1200_1400_2000.formatting': {'body': '<a href="W1200_1400_2000.formatting" title=" \n\nMiddleware: Data Formatting \n\n   "> \n\nMiddleware: Data Formatting \n\n   </a>',
                                'children': [],
                                'filename': 'W1200_1400_2000.formatting.whiff',
                                'id': 'W1200_1400_2000.formatting',
                                'next': 'W1200_1400_3000.tools',
                                'parent': 'W1200_1400.stdMiddleware',
                                'previous': 'W1200_1400_1000.naming',
                                'summary': ' \n\nStandard middleware category: Data Formatting.\n\n   ',
                                'title': ' \n\nMiddleware: Data Formatting \n\n   '},
 'W1200_1400_3000.tools': {'body': '<a href="W1200_1400_3000.tools" title=" \n\nMiddleware: Specialized tools \n\n   "> \n\nMiddleware: Specialized tools \n\n   </a>',
                           'children': [],
                           'filename': 'W1200_1400_3000.tools.whiff',
                           'id': 'W1200_1400_3000.tools',
                           'next': 'W1200_1400_4000.authorization',
                           'parent': 'W1200_1400.stdMiddleware',
                           'previous': 'W1200_1400_2000.formatting',
                           'summary': ' \n\nStandard middleware category: Specialized tools.\n\n   ',
                           'title': ' \n\nMiddleware: Specialized tools \n\n   '},
 'W1200_1400_4000.authorization': {'body': '<a href="W1200_1400_4000.authorization" title=" \n\nMiddleware: User authorization and management \n\n   "> \n\nMiddleware: User authorization and management \n\n   </a>',
                                   'children': [],
                                   'filename': 'W1200_1400_4000.authorization.whiff',
                                   'id': 'W1200_1400_4000.authorization',
                                   'next': 'W1200_1400_5000.logic',
                                   'parent': 'W1200_1400.stdMiddleware',
                                   'previous': 'W1200_1400_3000.tools',
                                   'summary': ' \n\nStandard middleware category: User authorization and management.\n\n   ',
                                   'title': ' \n\nMiddleware: User authorization and management \n\n   '},
 'W1200_1400_5000.logic': {'body': '<a href="W1200_1400_5000.logic" title=" \n\nMiddleware: Application logic helpers \n\n   "> \n\nMiddleware: Application logic helpers \n\n   </a>',
                           'children': [],
                           'filename': 'W1200_1400_5000.logic.whiff',
                           'id': 'W1200_1400_5000.logic',
                           'next': 'W1200_1400_6000.library',
                           'parent': 'W1200_1400.stdMiddleware',
                           'previous': 'W1200_1400_4000.authorization',
                           'summary': ' \n\nStandard middleware category: Application logic helpers.\n\n   ',
                           'title': ' \n\nMiddleware: Application logic helpers \n\n   '},
 'W1200_1400_6000.library': {'body': '<a href="W1200_1400_6000.library" title=" \n\nMiddleware: Support for external libraries \n\n   "> \n\nMiddleware: Support for external libraries \n\n   </a>',
                             'children': [],
                             'filename': 'W1200_1400_6000.library.whiff',
                             'id': 'W1200_1400_6000.library',
                             'next': 'W1200_1400_7000.ajax',
                             'parent': 'W1200_1400.stdMiddleware',
                             'previous': 'W1200_1400_5000.logic',
                             'summary': ' \n\nStandard middleware category: Support for external libraries.\n\n   ',
                             'title': ' \n\nMiddleware: Support for external libraries \n\n   '},
 'W1200_1400_7000.ajax': {'body': '<a href="W1200_1400_7000.ajax" title=" \n\nMiddleware: Support for AJAX and other advanced functionality \n\n   "> \n\nMiddleware: Support for AJAX and other advanced functionality \n\n   </a>',
                          'children': [],
                          'filename': 'W1200_1400_7000.ajax.whiff',
                          'id': 'W1200_1400_7000.ajax',
                          'next': 'W1200_1400_8000.miscellaneous',
                          'parent': 'W1200_1400.stdMiddleware',
                          'previous': 'W1200_1400_6000.library',
                          'summary': ' \n\nStandard middleware category: Support for AJAX and other advanced functionality.\n\n   ',
                          'title': ' \n\nMiddleware: Support for AJAX and other advanced functionality \n\n   '},
 'W1200_1400_8000.miscellaneous': {'body': '<a href="W1200_1400_8000.miscellaneous" title=" \n\nMiddleware: Miscellaneous \n\n   "> \n\nMiddleware: Miscellaneous \n\n   </a>',
                                   'children': [],
                                   'filename': 'W1200_1400_8000.miscellaneous.whiff',
                                   'id': 'W1200_1400_8000.miscellaneous',
                                   'next': 'W1300.testAndDemo',
                                   'parent': 'W1200_1400.stdMiddleware',
                                   'previous': 'W1200_1400_7000.ajax',
                                   'summary': ' \n\nStandard middleware category: Miscellaneous.\n\n   ',
                                   'title': ' \n\nMiddleware: Miscellaneous \n\n   '},
 'W1300.testAndDemo': {'body': '<a href="W1300.testAndDemo" title=" Tests, Demos, and Examples "> Tests, Demos, and Examples </a>',
                       'children': ['W1300_1000.search'],
                       'filename': 'W1300.testAndDemo.whiff',
                       'id': 'W1300.testAndDemo',
                       'next': 'W1300_1000.search',
                       'parent': 'W.intro',
                       'previous': 'W1200_1400_8000.miscellaneous',
                       'summary': ' A number of demo applications and self-tests ship with the whiff package. ',
                       'title': ' Tests, Demos, and Examples '},
 'W1300_1000.search': {'body': '<a href="W1300_1000.search" title=" \n\nSource tree search application deployment (FSCSI search) \n\n   "> \n\nSource tree search application deployment (FSCSI search) \n\n   </a>',
                       'children': [],
                       'filename': 'W1300_1000.search.whiff',
                       'id': 'W1300_1000.search',
                       'next': 'W1400.otherResources',
                       'parent': 'W1300.testAndDemo',
                       'previous': 'W1300.testAndDemo',
                       'summary': ' \n\nThis subsection describes how to deploy\r\na &quot;search&quot; application similar to the\nsearch demo that searches the source code\r\nfor the Python distribution. \n\n   ',
                       'title': ' \n\nSource tree search application deployment (FSCSI search) \n\n   '},
 'W1400.otherResources': {'body': '<a href="W1400.otherResources" title=" Other resources "> Other resources </a>',
                          'children': [],
                          'filename': 'W1400.otherResources.whiff',
                          'id': 'W1400.otherResources',
                          'next': 'W1500.whyIsWhiffCool',
                          'parent': 'W.intro',
                          'previous': 'W1300_1000.search',
                          'summary': ' There are other sources of information which help people to understand\r\nand build whiff applications. ',
                          'title': ' Other resources '},
 'W1500.whyIsWhiffCool': {'body': '<a href="W1500.whyIsWhiffCool" title=" \n\nWhiff is cool because...\n\n   "> \n\nWhiff is cool because...\n\n   </a>',
                          'children': [],
                          'filename': 'W1500.whyIsWhiffCool.whiff',
                          'id': 'W1500.whyIsWhiffCool',
                          'next': None,
                          'parent': 'W.intro',
                          'previous': 'W1400.otherResources',
                          'summary': " \n\nThis self-referential WHIFF document\r\nuses itself to describe why WHIFF is cool\r\nand why you can't write pages like this one\r\nas easily using any other method (as far as I know). \n\n   ",
                          'title': ' \n\nWhiff is cool because...\n\n   '}}
